package pe.edu.upc.dai.grupo4.web;

import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import pe.edu.upc.dai.grupo4.model.Rol;
import pe.edu.upc.dai.grupo4.model.Usuario;
import pe.edu.upc.dai.grupo4.service.RolService;
import pe.edu.upc.dai.grupo4.service.RolServiceImpl;
import pe.edu.upc.dai.grupo4.service.UsuarioService;
import pe.edu.upc.dai.grupo4.service.UsuarioServiceImpl;

/**
 *
 * @author Tito Luyo Murata
 */
public class RegistrarUsuarioServlet extends HttpServlet {

    private UsuarioService usuarioService;
    private RolService rolService;

    public RegistrarUsuarioServlet() {
        usuarioService = new UsuarioServiceImpl();
        rolService = new RolServiceImpl();
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Usuario usuario = new Usuario();
        usuario.setUsuario(request.getParameter("usuario"));
        usuario.setPassword(request.getParameter("password"));
        usuario.setNombre(request.getParameter("nombre"));
        usuario.setApellidoPaterno(request.getParameter("apellidoPaterno"));
        usuario.setApellidoMaterno(request.getParameter("apellidoMaterno"));


        int codigoRol;
        try {
            codigoRol = Integer.parseInt(request.getParameter("Roles"));
        } catch (Exception e) {
            codigoRol = 0;
        }
        request.setAttribute("codigoRol", codigoRol);
        if (codigoRol == 0) {
            request.setAttribute("mensaje", "Tiene que establecer el rol");
        } else {
            request.setAttribute("mensaje", "");

            Rol rol = rolService.selectPorCodigo(codigoRol);
            usuario.setRol(rol);

            int id_Usuario = usuarioService.insertar(usuario);
            usuario.setIdUsuario(id_Usuario);
        }
        request.setAttribute("usuario", usuario);
        listaRoles(request, response);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        listaRoles(request, response);
    }

    private void listaRoles(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        List<Rol> listaRol = rolService.select();
        request.setAttribute("listaRol", listaRol);
        getServletContext().getRequestDispatcher("/registrarUsuario.jsp").forward(request, response);
    }
}
